﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using TotalFreedomAngularJS;

namespace MvcAngular.ViewModels
{
    public class BasicsViewModel: BaseAjViewModel
    {
        public string YourName { get; set; }
    }

    public class ToDoViewModel : BaseAjViewModel
    {
        public string ToDoText { get; set; }
        public List<ToDoItem> ToDos { get; set; }

        public ToDoViewModel()
        {
            ToDos = new List<ToDoItem>();
            ToDos.Add(new ToDoItem() { Text = "learn angular", Done = true });
            ToDos.Add(new ToDoItem() { Text = "build an angular app", Done = false });
        }

        public void AddTodo()
        {
            ToDos.Add(new ToDoItem() { Text = ToDoText, Done = false });
            ToDoText = "";
        }

        public int Remaining()
        { 
            int count = 0;

            if (ToDos != null)
            {
                foreach (var todo in ToDos)
                {
                    count += todo.Done ? 0 : 1;
                }
            }
            
            return count;
        }

        public void Archive()
        {
            var oldTodos = ToDos;
            ToDos = new List<ToDoItem>();
            foreach (var todo in oldTodos)
            {
                if (!todo.Done)
                    ToDos.Add(todo);
            };
        }

        public class ToDoItem
        { 
            public string Text { get; set; }
            public bool Done { get; set; }    
        }
    }
}
